昨天已經大概介紹完 FlexMessage ,接著今天要來介紹 Quick reply , Quick reply 看起來雖然很簡單,但是功能卻相當強大,某些時刻也相當好用。
就讓我們先用前面 PostbackEvent 會回傳的 TextMessage 來示範一下,如何在 TextSendMessage 加入 Quick reply 的訊息。
我們只要在正常的 TextSendMessage 後面加入 QuickReply ,並用 QuickReplyButton 建立我們要的按鈕,然後設定對應的動作,再將 QuickReplyButton 串成 list 放入 QuickReply 的 item 參數即可。
@handler.add(PostbackEvent)
def handle_postback(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(
text=event.postback.data,
quick_reply=QuickReply(
items=[
QuickReplyButton(
action=PostbackAction("Hello", data="world", display_text="Hello")
),
QuickReplyButton(
action=PostbackAction("World", data="hello", display_text="World")
)
]
)
)
)
這樣就可以將前面做過的 FlexMessage 的按鈕按下去後會觸發的 PostbackEvent 回復的訊息加上一個 QuickReply 了。
但是我們這個設計有點小問題,那就是我們 QuickReply 觸發的動作是設計成 PostbackAction ,因此觸發後又會進入 PostbackEvent 的處裡函式中,然後就會陷入無限 Loop 中。
那麼就先到這邊,明天會介紹一些真正讓 Quick Reply 變強大的秘密。
大家掰~掰~